<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.18"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>HElib: helib::EncryptedArrayCx Class Reference</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
		<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,100;1,700&family=Merriweather&family=Merriweather+Sans&family=Open+Sans&family=Poppins:ital@1&family=Roboto:ital,wght@0,400;1,300;1,900&display=swap" rel="stylesheet"> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body style="font-family: 'Merriweather', serif;">
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand">HElib Implementing Homomorphic Encryption</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.18 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacehelib.html">helib</a></li><li class="navelem"><a class="el" href="classhelib_1_1_encrypted_array_cx.html">EncryptedArrayCx</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classhelib_1_1_encrypted_array_cx-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">helib::EncryptedArrayCx Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>A different derived class to be used for the approximate-numbers scheme.  
 <a href="classhelib_1_1_encrypted_array_cx.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_encrypted_array_8h_source.html">EncryptedArray.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for helib::EncryptedArrayCx:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classhelib_1_1_encrypted_array_cx.png" usemap="#helib::EncryptedArrayCx_map" alt=""/>
  <map id="helib::EncryptedArrayCx_map" name="helib::EncryptedArrayCx_map">
<area href="classhelib_1_1_encrypted_array_base.html" title="virtual class for data-movement operations on arrays of slots" alt="helib::EncryptedArrayBase" shape="rect" coords="0,0,164,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8816c7ea0d50a3667a7c9a4aaab903d5"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a8816c7ea0d50a3667a7c9a4aaab903d5">encodei</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, long precision=-1) const</td></tr>
<tr class="separator:a8816c7ea0d50a3667a7c9a4aaab903d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a759888cad7e21adc991832246d9ca3a2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a759888cad7e21adc991832246d9ca3a2">EncryptedArrayCx</a> (const <a class="el" href="classhelib_1_1_context.html">Context</a> &amp;_context)</td></tr>
<tr class="separator:a759888cad7e21adc991832246d9ca3a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79103ed28e86f05ca8c141758b6bcac9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a79103ed28e86f05ca8c141758b6bcac9">EncryptedArrayCx</a> (const <a class="el" href="classhelib_1_1_context.html">Context</a> &amp;_context, const <a class="el" href="classhelib_1_1_p_algebra_mod_cx.html">PAlgebraModCx</a> &amp;_alMod)</td></tr>
<tr class="separator:a79103ed28e86f05ca8c141758b6bcac9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a407bacde3fcafde4071f6e6e37bc2771"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classhelib_1_1_encrypted_array_base.html">EncryptedArrayBase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a407bacde3fcafde4071f6e6e37bc2771">clone</a> () const override</td></tr>
<tr class="separator:a407bacde3fcafde4071f6e6e37bc2771"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d770aef7c5a653d705f29a359187578"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a9d770aef7c5a653d705f29a359187578">getiEncoded</a> () const</td></tr>
<tr class="separator:a9d770aef7c5a653d705f29a359187578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a42dae93ce85090806f840ad3bc5ef069"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacehelib.html#ab0181d82dc81ed4d1f8c1d950b4efd7e">PA_tag</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a42dae93ce85090806f840ad3bc5ef069">getTag</a> () const override</td></tr>
<tr class="separator:a42dae93ce85090806f840ad3bc5ef069"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa31b4620c1888b0daf353c4947203b2c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classhelib_1_1_context.html">Context</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aa31b4620c1888b0daf353c4947203b2c">getContext</a> () const override</td></tr>
<tr class="separator:aa31b4620c1888b0daf353c4947203b2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e77914e54d3c5cf96370fafd1792d51"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classhelib_1_1_p_algebra.html">PAlgebra</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a9e77914e54d3c5cf96370fafd1792d51">getPAlgebra</a> () const override</td></tr>
<tr class="separator:a9e77914e54d3c5cf96370fafd1792d51"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb3be49bb5b91e3f7cca75c89877687f"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#adb3be49bb5b91e3f7cca75c89877687f">getDegree</a> () const override</td></tr>
<tr class="separator:adb3be49bb5b91e3f7cca75c89877687f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d8d25cd71e1ca0bd7a287b18965d7c4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a7d8d25cd71e1ca0bd7a287b18965d7c4">rotate</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, long k) const override</td></tr>
<tr class="memdesc:a7d8d25cd71e1ca0bd7a287b18965d7c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Right rotation as a linear array. E.g., rotating ctxt=Enc(1 2 3 ... n) by k=1 gives Enc(n 1 2 ... n-1)  <a href="classhelib_1_1_encrypted_array_cx.html#a7d8d25cd71e1ca0bd7a287b18965d7c4">More...</a><br /></td></tr>
<tr class="separator:a7d8d25cd71e1ca0bd7a287b18965d7c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e06f07495e1753090a36084f0567c24"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a5e06f07495e1753090a36084f0567c24">shift</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, long k) const override</td></tr>
<tr class="memdesc:a5e06f07495e1753090a36084f0567c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-cyclic right shift with zero fill E.g., shifting ctxt=Enc(1 2 3 ... n) by k=1 gives Enc(0 1 2... n-1)  <a href="classhelib_1_1_encrypted_array_cx.html#a5e06f07495e1753090a36084f0567c24">More...</a><br /></td></tr>
<tr class="separator:a5e06f07495e1753090a36084f0567c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f262de0581bb42862bfd5edbdc1b79d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a6f262de0581bb42862bfd5edbdc1b79d">rotate1D</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, long i, long k, bool dc=false) const override</td></tr>
<tr class="memdesc:a6f262de0581bb42862bfd5edbdc1b79d"><td class="mdescLeft">&#160;</td><td class="mdescRight">right-rotate k positions along the i'th dimension  <a href="classhelib_1_1_encrypted_array_cx.html#a6f262de0581bb42862bfd5edbdc1b79d">More...</a><br /></td></tr>
<tr class="separator:a6f262de0581bb42862bfd5edbdc1b79d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c9c54b75a6f13a32c5c71157477d6a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a8c9c54b75a6f13a32c5c71157477d6a4">shift1D</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, long i, long k) const override</td></tr>
<tr class="memdesc:a8c9c54b75a6f13a32c5c71157477d6a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Right shift k positions along the i'th dimension with zero fill.  <a href="classhelib_1_1_encrypted_array_cx.html#a8c9c54b75a6f13a32c5c71157477d6a4">More...</a><br /></td></tr>
<tr class="separator:a8c9c54b75a6f13a32c5c71157477d6a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3df75f4c6f7d6962041e01f608fd168d"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a3df75f4c6f7d6962041e01f608fd168d">getP2R</a> () const override</td></tr>
<tr class="separator:a3df75f4c6f7d6962041e01f608fd168d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a8bd7eeef62309e6c872a45e9d50b6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a1a8bd7eeef62309e6c872a45e9d50b6e">encode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; long &gt; &amp;array) const override</td></tr>
<tr class="memdesc:a1a8bd7eeef62309e6c872a45e9d50b6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a1a8bd7eeef62309e6c872a45e9d50b6e">More...</a><br /></td></tr>
<tr class="separator:a1a8bd7eeef62309e6c872a45e9d50b6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c3a912cab33e23d959d45826a398578"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a6c3a912cab33e23d959d45826a398578">encode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> NTL::ZZX &amp;ptxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; long &gt; &amp;array) const override</td></tr>
<tr class="memdesc:a6c3a912cab33e23d959d45826a398578"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a6c3a912cab33e23d959d45826a398578">More...</a><br /></td></tr>
<tr class="separator:a6c3a912cab33e23d959d45826a398578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5ce92c28f92efd122a6f93fed3c42a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ae5ce92c28f92efd122a6f93fed3c42a7">encode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;array) const override</td></tr>
<tr class="memdesc:ae5ce92c28f92efd122a6f93fed3c42a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#ae5ce92c28f92efd122a6f93fed3c42a7">More...</a><br /></td></tr>
<tr class="separator:ae5ce92c28f92efd122a6f93fed3c42a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca004382bb4e4226ba45634f4302d8c0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aca004382bb4e4226ba45634f4302d8c0">encode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;array) const override</td></tr>
<tr class="memdesc:aca004382bb4e4226ba45634f4302d8c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#aca004382bb4e4226ba45634f4302d8c0">More...</a><br /></td></tr>
<tr class="separator:aca004382bb4e4226ba45634f4302d8c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e916710a3d770b1a5e258c27ba2ef86"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a4e916710a3d770b1a5e258c27ba2ef86">encode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> NTL::ZZX &amp;ptxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; NTL::ZZX &gt; &amp;array) const override</td></tr>
<tr class="memdesc:a4e916710a3d770b1a5e258c27ba2ef86"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a4e916710a3d770b1a5e258c27ba2ef86">More...</a><br /></td></tr>
<tr class="separator:a4e916710a3d770b1a5e258c27ba2ef86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab921e7d1e4408b40e64880ed71c079df"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ab921e7d1e4408b40e64880ed71c079df">encode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> NTL::ZZX &amp;ptxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;array) const override</td></tr>
<tr class="memdesc:ab921e7d1e4408b40e64880ed71c079df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#ab921e7d1e4408b40e64880ed71c079df">More...</a><br /></td></tr>
<tr class="separator:ab921e7d1e4408b40e64880ed71c079df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae26a1447dca1803da3a54b394f8ff7f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ae26a1447dca1803da3a54b394f8ff7f3">decode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; long &gt; &amp;array, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const NTL::ZZX &amp;ptxt) const override</td></tr>
<tr class="memdesc:ae26a1447dca1803da3a54b394f8ff7f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented decode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#ae26a1447dca1803da3a54b394f8ff7f3">More...</a><br /></td></tr>
<tr class="separator:ae26a1447dca1803da3a54b394f8ff7f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a37f5f723bf309bf9727d301ba0c9e915"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a37f5f723bf309bf9727d301ba0c9e915">decode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;array, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const NTL::ZZX &amp;ptxt) const override</td></tr>
<tr class="memdesc:a37f5f723bf309bf9727d301ba0c9e915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented decode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a37f5f723bf309bf9727d301ba0c9e915">More...</a><br /></td></tr>
<tr class="separator:a37f5f723bf309bf9727d301ba0c9e915"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adafe0d6e2cc46d72ed92629568260913"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#adafe0d6e2cc46d72ed92629568260913">decode</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;array, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const NTL::ZZX &amp;ptxt) const override</td></tr>
<tr class="memdesc:adafe0d6e2cc46d72ed92629568260913"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented decode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#adafe0d6e2cc46d72ed92629568260913">More...</a><br /></td></tr>
<tr class="separator:adafe0d6e2cc46d72ed92629568260913"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a909891b441d50f99b13e5719ea7b1ce7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a909891b441d50f99b13e5719ea7b1ce7">random</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;array) const override</td></tr>
<tr class="memdesc:a909891b441d50f99b13e5719ea7b1ce7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented random function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a909891b441d50f99b13e5719ea7b1ce7">More...</a><br /></td></tr>
<tr class="separator:a909891b441d50f99b13e5719ea7b1ce7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3a288634f433757cb36f2cd76db1382"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ad3a288634f433757cb36f2cd76db1382">decrypt</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; long &gt; &amp;ptxt) const override</td></tr>
<tr class="memdesc:ad3a288634f433757cb36f2cd76db1382"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented decrypt function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#ad3a288634f433757cb36f2cd76db1382">More...</a><br /></td></tr>
<tr class="separator:ad3a288634f433757cb36f2cd76db1382"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7c7e7d86e4cc50878cd108efc4e97c46"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a7c7e7d86e4cc50878cd108efc4e97c46">decrypt</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;ptxt) const override</td></tr>
<tr class="memdesc:a7c7e7d86e4cc50878cd108efc4e97c46"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented decrypt function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a7c7e7d86e4cc50878cd108efc4e97c46">More...</a><br /></td></tr>
<tr class="separator:a7c7e7d86e4cc50878cd108efc4e97c46"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b2d7b9513ab362cc501444c80caf1b9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a7b2d7b9513ab362cc501444c80caf1b9">decrypt</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;ptxt) const override</td></tr>
<tr class="memdesc:a7b2d7b9513ab362cc501444c80caf1b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented decrypt function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a7b2d7b9513ab362cc501444c80caf1b9">More...</a><br /></td></tr>
<tr class="separator:a7b2d7b9513ab362cc501444c80caf1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b7e8a98d581d65ed294d0d9e6d8b6c6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a8b7e8a98d581d65ed294d0d9e6d8b6c6">buildLinPolyCoeffs</a> (<a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;C, <a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; NTL::ZZX &gt; &amp;L) const override</td></tr>
<tr class="memdesc:a8b7e8a98d581d65ed294d0d9e6d8b6c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unimplemented buildLinPolyCoeffs function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>.  <a href="classhelib_1_1_encrypted_array_cx.html#a8b7e8a98d581d65ed294d0d9e6d8b6c6">More...</a><br /></td></tr>
<tr class="separator:a8b7e8a98d581d65ed294d0d9e6d8b6c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0bc1cf1942cb25cbfd2c831aba3a8ca"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ae0bc1cf1942cb25cbfd2c831aba3a8ca">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;array, double useThisSize, long precision=-1) const</td></tr>
<tr class="separator:ae0bc1cf1942cb25cbfd2c831aba3a8ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1192b25b1874ce96ccba61901f25b1d2"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a1192b25b1874ce96ccba61901f25b1d2">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const std::vector&lt; double &gt; &amp;array, double useThisSize, long precision=-1) const</td></tr>
<tr class="separator:a1192b25b1874ce96ccba61901f25b1d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8367c993fd304e5633ec0af3942d9dde"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a8367c993fd304e5633ec0af3942d9dde">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const std::vector&lt; long &gt; &amp;array, double useThisSize, long precision=-1) const</td></tr>
<tr class="separator:a8367c993fd304e5633ec0af3942d9dde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c41f5c4c4efad7ab4f395c476ad86a3"><td class="memTemplParams" colspan="2">template&lt;typename Scheme &gt; </td></tr>
<tr class="memitem:a4c41f5c4c4efad7ab4f395c476ad86a3"><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a4c41f5c4c4efad7ab4f395c476ad86a3">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;out, const <a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;ptxt, double useThisSize, long precision=-1) const</td></tr>
<tr class="memdesc:a4c41f5c4c4efad7ab4f395c476ad86a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encode a <code><a class="el" href="classhelib_1_1_ptxt.html" title="An object that mimics the functionality of the Ctxt object, and acts as a convenient entry point for ...">Ptxt</a></code> object into a <code>zzX</code>.  <a href="classhelib_1_1_encrypted_array_cx.html#a4c41f5c4c4efad7ab4f395c476ad86a3">More...</a><br /></td></tr>
<tr class="separator:a4c41f5c4c4efad7ab4f395c476ad86a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32dc1b7e2f744d33d1f4a768cb95e888"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a32dc1b7e2f744d33d1f4a768cb95e888">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, double aSingleNumber, double useThisSize=-1, long precision=-1) const</td></tr>
<tr class="separator:a32dc1b7e2f744d33d1f4a768cb95e888"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a194b09c3ca3c9880f587f598cdaab92c"><td class="memTemplParams" colspan="2">template&lt;typename PTXT &gt; </td></tr>
<tr class="memitem:a194b09c3ca3c9880f587f598cdaab92c"><td class="memTemplItemLeft" align="right" valign="top">double&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a194b09c3ca3c9880f587f598cdaab92c">encode</a> (NTL::ZZX &amp;ptxt, const PTXT &amp;pt, double useThisSize=-1, long precision=-1) const</td></tr>
<tr class="separator:a194b09c3ca3c9880f587f598cdaab92c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d95edb864185a146f2536a94b9eff80"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a9d95edb864185a146f2536a94b9eff80">encryptOneNum</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;key, double num, double useThisSize=-1, long precision=-1) const</td></tr>
<tr class="separator:a9d95edb864185a146f2536a94b9eff80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ace019165a5f26bc7fa0a2528324a15"><td class="memTemplParams" colspan="2">template&lt;typename PTXT &gt; </td></tr>
<tr class="memitem:a3ace019165a5f26bc7fa0a2528324a15"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a3ace019165a5f26bc7fa0a2528324a15">encrypt</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;key, const PTXT &amp;ptxt, double useThisSize, long precision=-1) const</td></tr>
<tr class="separator:a3ace019165a5f26bc7fa0a2528324a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79a4eb688187ecd60d37dd7c0b9e43a5"><td class="memTemplParams" colspan="2">template&lt;typename PTXT &gt; </td></tr>
<tr class="memitem:a79a4eb688187ecd60d37dd7c0b9e43a5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a79a4eb688187ecd60d37dd7c0b9e43a5">encrypt</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;key, const PTXT &amp;ptxt) const</td></tr>
<tr class="separator:a79a4eb688187ecd60d37dd7c0b9e43a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fee8bb20e092b4728f2ed11c78bacc8"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a0fee8bb20e092b4728f2ed11c78bacc8">encodeUnitSelector</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, long i) const override</td></tr>
<tr class="memdesc:a0fee8bb20e092b4728f2ed11c78bacc8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Encodes a std::vector with 1 at position i and 0 everywhere else.  <a href="classhelib_1_1_encrypted_array_cx.html#a0fee8bb20e092b4728f2ed11c78bacc8">More...</a><br /></td></tr>
<tr class="separator:a0fee8bb20e092b4728f2ed11c78bacc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a614df6336a69dd08830bebfcfb34a5a8"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a614df6336a69dd08830bebfcfb34a5a8">encodeRoundingError</a> () const</td></tr>
<tr class="separator:a614df6336a69dd08830bebfcfb34a5a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab484dcb060abf64753a886c7bf734cd3"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ab484dcb060abf64753a886c7bf734cd3">encodeScalingFactor</a> (long precision=-1, double roundErr=-1.0) const</td></tr>
<tr class="separator:ab484dcb060abf64753a886c7bf734cd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a04a4eb3181a52e70fffe155769c6507c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a04a4eb3181a52e70fffe155769c6507c">decode</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;array, const <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, double scaling) const</td></tr>
<tr class="separator:a04a4eb3181a52e70fffe155769c6507c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee03f28f6d616e8109966f711c299f47"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aee03f28f6d616e8109966f711c299f47">decode</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;array, const NTL::ZZX &amp;ptxt, double scaling) const</td></tr>
<tr class="separator:aee03f28f6d616e8109966f711c299f47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6adfaf69bf5ce786122da95a4c2bf9e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#af6adfaf69bf5ce786122da95a4c2bf9e">decode</a> (std::vector&lt; double &gt; &amp;array, const <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, double scaling) const</td></tr>
<tr class="separator:af6adfaf69bf5ce786122da95a4c2bf9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0897608adff0c1e2e558968cbe96a3d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ac0897608adff0c1e2e558968cbe96a3d">decode</a> (std::vector&lt; double &gt; &amp;array, const NTL::ZZX &amp;ptxt, double scaling) const</td></tr>
<tr class="separator:ac0897608adff0c1e2e558968cbe96a3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75e42ce2babf93cdc429d474111cf889"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a75e42ce2babf93cdc429d474111cf889">random</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;array, double rad=1.0) const</td></tr>
<tr class="separator:a75e42ce2babf93cdc429d474111cf889"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2bb0704f701023769bb7cc985fd18e73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a2bb0704f701023769bb7cc985fd18e73">random</a> (std::vector&lt; double &gt; &amp;array, double rad=1.0) const</td></tr>
<tr class="separator:a2bb0704f701023769bb7cc985fd18e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a852eac6fa3232bbc05e850759334580a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a852eac6fa3232bbc05e850759334580a">random</a> (std::vector&lt; long &gt; &amp;array) const override</td></tr>
<tr class="separator:a852eac6fa3232bbc05e850759334580a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa502f697863f7b9354a25997043507bf"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aa502f697863f7b9354a25997043507bf">decrypt</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;ptxt) const override</td></tr>
<tr class="separator:aa502f697863f7b9354a25997043507bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5bea11d6a177b18c3085e37fa5af5c20"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a5bea11d6a177b18c3085e37fa5af5c20">decrypt</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, std::vector&lt; double &gt; &amp;ptxt) const override</td></tr>
<tr class="separator:a5bea11d6a177b18c3085e37fa5af5c20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa9e2e8c44f575c2f47c6151c71cf8c5"><td class="memTemplParams" colspan="2">template&lt;typename Scheme &gt; </td></tr>
<tr class="memitem:afa9e2e8c44f575c2f47c6151c71cf8c5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#afa9e2e8c44f575c2f47c6151c71cf8c5">decrypt</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, <a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;ptxt) const</td></tr>
<tr class="memdesc:afa9e2e8c44f575c2f47c6151c71cf8c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decrypt ciphertext to a plaintext relative to a specific scheme.  <a href="classhelib_1_1_encrypted_array_cx.html#afa9e2e8c44f575c2f47c6151c71cf8c5">More...</a><br /></td></tr>
<tr class="separator:afa9e2e8c44f575c2f47c6151c71cf8c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c2c2a01e6ea6c972904c1e98738fbd1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a5c2c2a01e6ea6c972904c1e98738fbd1">extractRealPart</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;c) const</td></tr>
<tr class="separator:a5c2c2a01e6ea6c972904c1e98738fbd1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a333b490a6f284b78172e0e62092ea603"><td class="memTemplParams" colspan="2">template&lt;typename Scheme &gt; </td></tr>
<tr class="memitem:a333b490a6f284b78172e0e62092ea603"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a333b490a6f284b78172e0e62092ea603">extractRealPart</a> (<a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;p) const</td></tr>
<tr class="memdesc:a333b490a6f284b78172e0e62092ea603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the real part of a <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code> plaintext.  <a href="classhelib_1_1_encrypted_array_cx.html#a333b490a6f284b78172e0e62092ea603">More...</a><br /></td></tr>
<tr class="separator:a333b490a6f284b78172e0e62092ea603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeae260ec0a6f65f82abdfd25a875e0a3"><td class="memTemplParams" colspan="2">template&lt;typename Scheme &gt; </td></tr>
<tr class="memitem:aeae260ec0a6f65f82abdfd25a875e0a3"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aeae260ec0a6f65f82abdfd25a875e0a3">extractImPart</a> (<a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;p) const</td></tr>
<tr class="memdesc:aeae260ec0a6f65f82abdfd25a875e0a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Extract the imaginary part of a <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code> plaintext.  <a href="classhelib_1_1_encrypted_array_cx.html#aeae260ec0a6f65f82abdfd25a875e0a3">More...</a><br /></td></tr>
<tr class="separator:aeae260ec0a6f65f82abdfd25a875e0a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4d57a1e0b74b21438445fbd6ba2b03d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#af4d57a1e0b74b21438445fbd6ba2b03d">extractImPart</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;c, <a class="el" href="classhelib_1_1_double_c_r_t.html">DoubleCRT</a> *dcrt=nullptr) const</td></tr>
<tr class="separator:af4d57a1e0b74b21438445fbd6ba2b03d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee83a1b81625a43d1d819e3740b2a3b4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aee83a1b81625a43d1d819e3740b2a3b4">badDimensionAutomorphCorrection</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, long i, long k) const override</td></tr>
<tr class="memdesc:aee83a1b81625a43d1d819e3740b2a3b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Correct an automorphism in a bad dimension.  <a href="classhelib_1_1_encrypted_array_cx.html#aee83a1b81625a43d1d819e3740b2a3b4">More...</a><br /></td></tr>
<tr class="separator:aee83a1b81625a43d1d819e3740b2a3b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr><td colspan="2"><div class="groupHeader">Linearized polynomials for EncryptedArrayCx</div></td></tr>
<tr><td colspan="2"><div class="groupText"><p>buildLinPolyCoeffs returns in C two encoded constants such that the linear transformation(s) defined as L(1) = oneImage and L(i)=iImage can be computed as: L(x) = C[0]*x + C[1]*conjugate(x). Once C is computed, we can apply this L to a ciphertext by calling applyLinPolyLL(ctxt, C, 2). Alternatively, we can convert C to a vector of two <a class="el" href="classhelib_1_1_double_c_r_t.html" title="Implementing polynomials (elements in the ring R_Q) in double-CRT form.">DoubleCRT</a> objects, then call applyLinPolyLL(ctxt, dcrtVec, 2). This lets us compute the <a class="el" href="classhelib_1_1_double_c_r_t.html" title="Implementing polynomials (elements in the ring R_Q) in double-CRT form.">DoubleCRT</a> object just once, then use them many times. </p>
</div></td></tr>
<tr class="memitem:a60e1f36fa2c3453822f72a6989149714"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a60e1f36fa2c3453822f72a6989149714">buildLinPolyCoeffs</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;C, const <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &amp;oneImage, const <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &amp;iImage, long precision=0) const</td></tr>
<tr class="memdesc:a60e1f36fa2c3453822f72a6989149714"><td class="mdescLeft">&#160;</td><td class="mdescRight">First variant: same linear transformation in all the slots.  <a href="classhelib_1_1_encrypted_array_cx.html#a60e1f36fa2c3453822f72a6989149714">More...</a><br /></td></tr>
<tr class="separator:a60e1f36fa2c3453822f72a6989149714"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad08e366e8626643c48cb51f3936717de"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#ad08e366e8626643c48cb51f3936717de">buildLinPolyCoeffs</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;C, const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;oneImages, const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;iImages, long precision=0) const</td></tr>
<tr class="memdesc:ad08e366e8626643c48cb51f3936717de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Second variant: different linear transformation in each slots.  <a href="classhelib_1_1_encrypted_array_cx.html#ad08e366e8626643c48cb51f3936717de">More...</a><br /></td></tr>
<tr class="separator:ad08e366e8626643c48cb51f3936717de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classhelib_1_1_encrypted_array_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classhelib_1_1_encrypted_array_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classhelib_1_1_encrypted_array_base.html">helib::EncryptedArrayBase</a></td></tr>
<tr class="memitem:a3fcb15513e4d89d0c0ed4bda3fca2190 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a3fcb15513e4d89d0c0ed4bda3fca2190">~EncryptedArrayBase</a> ()</td></tr>
<tr class="separator:a3fcb15513e4d89d0c0ed4bda3fca2190 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20cdc66014104dd640f37c1c92e1fa05 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a20cdc66014104dd640f37c1c92e1fa05">buildLinPolyCoeffs</a> (std::vector&lt; NTL::ZZX &gt; &amp;C, const std::vector&lt; NTL::ZZX &gt; &amp;L) const =0</td></tr>
<tr class="memdesc:a20cdc66014104dd640f37c1c92e1fa05 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Linearized polynomials. L describes a linear map M by describing its action on the standard power basis: M(x^j mod G) = (L[j] mod G), for j = 0..d-1. The result is a coefficient std::vector C for the linearized polynomial representing M: a polynomial h in Z/(p^r)[X] of degree &lt; d is sent to.  <a href="classhelib_1_1_encrypted_array_base.html#a20cdc66014104dd640f37c1c92e1fa05">More...</a><br /></td></tr>
<tr class="separator:a20cdc66014104dd640f37c1c92e1fa05 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3829a9890ce25a65bdb5111bf2bdd687 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a3829a9890ce25a65bdb5111bf2bdd687">restoreContext</a> () const</td></tr>
<tr class="separator:a3829a9890ce25a65bdb5111bf2bdd687 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5927ca8c689a115ee2c12522289255f inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#ae5927ca8c689a115ee2c12522289255f">restoreContextForG</a> () const</td></tr>
<tr class="separator:ae5927ca8c689a115ee2c12522289255f inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a16e9c45db9d6b963cfeaf0c0afaca2 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a6a16e9c45db9d6b963cfeaf0c0afaca2">size</a> () const</td></tr>
<tr class="memdesc:a6a16e9c45db9d6b963cfeaf0c0afaca2 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Total size (# of slots) of hypercube.  <a href="classhelib_1_1_encrypted_array_base.html#a6a16e9c45db9d6b963cfeaf0c0afaca2">More...</a><br /></td></tr>
<tr class="separator:a6a16e9c45db9d6b963cfeaf0c0afaca2 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5741ce03114f74e26d3d842e3539806a inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a5741ce03114f74e26d3d842e3539806a">dimension</a> () const</td></tr>
<tr class="memdesc:a5741ce03114f74e26d3d842e3539806a inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of dimensions of hypercube.  <a href="classhelib_1_1_encrypted_array_base.html#a5741ce03114f74e26d3d842e3539806a">More...</a><br /></td></tr>
<tr class="separator:a5741ce03114f74e26d3d842e3539806a inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b4ebc9251cd7e1966c5da70f51fb369 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a7b4ebc9251cd7e1966c5da70f51fb369">sizeOfDimension</a> (long i) const</td></tr>
<tr class="memdesc:a7b4ebc9251cd7e1966c5da70f51fb369 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Size of given dimension.  <a href="classhelib_1_1_encrypted_array_base.html#a7b4ebc9251cd7e1966c5da70f51fb369">More...</a><br /></td></tr>
<tr class="separator:a7b4ebc9251cd7e1966c5da70f51fb369 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a368c21a272921966da3a7793145bf5d2 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a368c21a272921966da3a7793145bf5d2">nativeDimension</a> (long i) const</td></tr>
<tr class="memdesc:a368c21a272921966da3a7793145bf5d2 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is rotations in given dimension a "native" operation?  <a href="classhelib_1_1_encrypted_array_base.html#a368c21a272921966da3a7793145bf5d2">More...</a><br /></td></tr>
<tr class="separator:a368c21a272921966da3a7793145bf5d2 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f4d4caa1e488648194495688a06a6a3 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a1f4d4caa1e488648194495688a06a6a3">coordinate</a> (long i, long k) const</td></tr>
<tr class="memdesc:a1f4d4caa1e488648194495688a06a6a3 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">returns coordinate of index k along the i'th dimension  <a href="classhelib_1_1_encrypted_array_base.html#a1f4d4caa1e488648194495688a06a6a3">More...</a><br /></td></tr>
<tr class="separator:a1f4d4caa1e488648194495688a06a6a3 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af55d2066263a1a0f6abd9ab221a61f0c inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#af55d2066263a1a0f6abd9ab221a61f0c">addCoord</a> (long i, long k, long offset) const</td></tr>
<tr class="memdesc:af55d2066263a1a0f6abd9ab221a61f0c inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds offset to index k in the i'th dimension  <a href="classhelib_1_1_encrypted_array_base.html#af55d2066263a1a0f6abd9ab221a61f0c">More...</a><br /></td></tr>
<tr class="separator:af55d2066263a1a0f6abd9ab221a61f0c inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefb676e30745c2ce81df0384cf949df7 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memTemplParams" colspan="2">template&lt;typename U &gt; </td></tr>
<tr class="memitem:aefb676e30745c2ce81df0384cf949df7 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#aefb676e30745c2ce81df0384cf949df7">rotate1D</a> (std::vector&lt; U &gt; &amp;out, const std::vector&lt; U &gt; &amp;in, long i, long offset) const</td></tr>
<tr class="memdesc:aefb676e30745c2ce81df0384cf949df7 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">rotate an array by offset in the i'th dimension (output should not alias input)  <a href="classhelib_1_1_encrypted_array_base.html#aefb676e30745c2ce81df0384cf949df7">More...</a><br /></td></tr>
<tr class="separator:aefb676e30745c2ce81df0384cf949df7 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93bf7ceecb7cef0259b5eddeb25a3c28 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a93bf7ceecb7cef0259b5eddeb25a3c28">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const std::vector&lt; long &gt; &amp;array) const =0</td></tr>
<tr class="separator:a93bf7ceecb7cef0259b5eddeb25a3c28 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c08875c23130ae7eeea11189b5c50cf inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a6c08875c23130ae7eeea11189b5c50cf">encode</a> (NTL::ZZX &amp;ptxt, const std::vector&lt; long &gt; &amp;array) const =0</td></tr>
<tr class="separator:a6c08875c23130ae7eeea11189b5c50cf inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a64f75f243718856305758a8a39834a00 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a64f75f243718856305758a8a39834a00">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;array) const =0</td></tr>
<tr class="separator:a64f75f243718856305758a8a39834a00 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b461cfa84f1751ad0db61a80ff5c7e8 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a8b461cfa84f1751ad0db61a80ff5c7e8">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;array) const =0</td></tr>
<tr class="separator:a8b461cfa84f1751ad0db61a80ff5c7e8 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c1ee4078df5f248d96b30dd5676783e inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a4c1ee4078df5f248d96b30dd5676783e">encode</a> (NTL::ZZX &amp;ptxt, const std::vector&lt; NTL::ZZX &gt; &amp;array) const =0</td></tr>
<tr class="separator:a4c1ee4078df5f248d96b30dd5676783e inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af769f314f80561d0aad9420aabc98a86 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#af769f314f80561d0aad9420aabc98a86">encode</a> (NTL::ZZX &amp;ptxt, const <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;array) const =0</td></tr>
<tr class="separator:af769f314f80561d0aad9420aabc98a86 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f11ae63a7511a016c1ba28f293930a0 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a8f11ae63a7511a016c1ba28f293930a0">encode</a> (<a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;ptxt, const std::vector&lt; NTL::ZZX &gt; &amp;array) const</td></tr>
<tr class="separator:a8f11ae63a7511a016c1ba28f293930a0 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aacbeee1b5623eeec1d2c8ca311654cc7 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#aacbeee1b5623eeec1d2c8ca311654cc7">decode</a> (std::vector&lt; long &gt; &amp;array, const NTL::ZZX &amp;ptxt) const =0</td></tr>
<tr class="separator:aacbeee1b5623eeec1d2c8ca311654cc7 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a034157a2fb376284fa951f20570e02d0 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a034157a2fb376284fa951f20570e02d0">decode</a> (std::vector&lt; NTL::ZZX &gt; &amp;array, const NTL::ZZX &amp;ptxt) const =0</td></tr>
<tr class="separator:a034157a2fb376284fa951f20570e02d0 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a789cc5597002e684315cabbef6c42de8 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a789cc5597002e684315cabbef6c42de8">decode</a> (<a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;array, const NTL::ZZX &amp;ptxt) const =0</td></tr>
<tr class="separator:a789cc5597002e684315cabbef6c42de8 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54e197fb8f924535b79bf1cb0fd62ce3 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a54e197fb8f924535b79bf1cb0fd62ce3">random</a> (std::vector&lt; NTL::ZZX &gt; &amp;array) const =0</td></tr>
<tr class="separator:a54e197fb8f924535b79bf1cb0fd62ce3 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9b7baf29ff926acd6cfa8b8d00bf800 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#ab9b7baf29ff926acd6cfa8b8d00bf800">decode1Slot</a> (const NTL::ZZX &amp;ptxt, long i) const</td></tr>
<tr class="separator:ab9b7baf29ff926acd6cfa8b8d00bf800 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfdec26873763a9b20daf3206a273146 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#acfdec26873763a9b20daf3206a273146">decode1Slot</a> (NTL::ZZX &amp;slot, const NTL::ZZX &amp;ptxt, long i) const</td></tr>
<tr class="separator:acfdec26873763a9b20daf3206a273146 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade59fa0a4bceb030a895d725ee1f7d88 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memTemplParams" colspan="2">template&lt;typename PTXT &gt; </td></tr>
<tr class="memitem:ade59fa0a4bceb030a895d725ee1f7d88 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#ade59fa0a4bceb030a895d725ee1f7d88">encrypt</a> (<a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;key, const PTXT &amp;ptxt) const</td></tr>
<tr class="separator:ade59fa0a4bceb030a895d725ee1f7d88 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e8c39c8730c5072e36f37aaa28eccbb inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a4e8c39c8730c5072e36f37aaa28eccbb">decrypt</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, std::vector&lt; long &gt; &amp;ptxt) const =0</td></tr>
<tr class="separator:a4e8c39c8730c5072e36f37aaa28eccbb inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae31ef3579ef0b0d6cba0f805a9c80f50 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#ae31ef3579ef0b0d6cba0f805a9c80f50">decrypt</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, std::vector&lt; NTL::ZZX &gt; &amp;ptxt) const =0</td></tr>
<tr class="separator:ae31ef3579ef0b0d6cba0f805a9c80f50 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96caa13ce77bdabc4b7d679c28213c73 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a96caa13ce77bdabc4b7d679c28213c73">decrypt</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;ptxt) const =0</td></tr>
<tr class="separator:a96caa13ce77bdabc4b7d679c28213c73 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb343e9ad9fe202a7386fc8359346a02 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">long&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#acb343e9ad9fe202a7386fc8359346a02">decrypt1Slot</a> (const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, long i) const</td></tr>
<tr class="separator:acb343e9ad9fe202a7386fc8359346a02 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a454ee083696fe4e2b56ed18dae023722 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_base.html#a454ee083696fe4e2b56ed18dae023722">decrypt1Slot</a> (NTL::ZZX &amp;slot, const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;ctxt, const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;sKey, long i) const</td></tr>
<tr class="separator:a454ee083696fe4e2b56ed18dae023722 inherit pub_methods_classhelib_1_1_encrypted_array_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a84a23e382804d2ed776dd7eebe65c41e"><td class="memItemLeft" align="right" valign="top">static double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a84a23e382804d2ed776dd7eebe65c41e">roundedSize</a> (double x)</td></tr>
<tr class="separator:a84a23e382804d2ed776dd7eebe65c41e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dad92fbceda699b62904e4418ae122c"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a4dad92fbceda699b62904e4418ae122c">convert</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;out, const std::vector&lt; double &gt; &amp;in)</td></tr>
<tr class="separator:a4dad92fbceda699b62904e4418ae122c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a421628840dc807f1f0c2265c763176ed"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a421628840dc807f1f0c2265c763176ed">convert</a> (std::vector&lt; double &gt; &amp;out, const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;in)</td></tr>
<tr class="separator:a421628840dc807f1f0c2265c763176ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4cd5c3c53cd6bd535e37ba2c4db4bd7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#aa4cd5c3c53cd6bd535e37ba2c4db4bd7">convert</a> (std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;out, const std::vector&lt; long &gt; &amp;in)</td></tr>
<tr class="separator:aa4cd5c3c53cd6bd535e37ba2c4db4bd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13112446e3d1596d974b51c3d1da8ba7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classhelib_1_1_encrypted_array_cx.html#a13112446e3d1596d974b51c3d1da8ba7">convert</a> (std::vector&lt; long &gt; &amp;out, const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;in)</td></tr>
<tr class="separator:a13112446e3d1596d974b51c3d1da8ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>A different derived class to be used for the approximate-numbers scheme. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a759888cad7e21adc991832246d9ca3a2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a759888cad7e21adc991832246d9ca3a2">&#9670;&nbsp;</a></span>EncryptedArrayCx() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">helib::EncryptedArrayCx::EncryptedArrayCx </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_context.html">Context</a> &amp;&#160;</td>
          <td class="paramname"><em>_context</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a79103ed28e86f05ca8c141758b6bcac9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79103ed28e86f05ca8c141758b6bcac9">&#9670;&nbsp;</a></span>EncryptedArrayCx() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">helib::EncryptedArrayCx::EncryptedArrayCx </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_context.html">Context</a> &amp;&#160;</td>
          <td class="paramname"><em>_context</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_p_algebra_mod_cx.html">PAlgebraModCx</a> &amp;&#160;</td>
          <td class="paramname"><em>_alMod</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="aee83a1b81625a43d1d819e3740b2a3b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee83a1b81625a43d1d819e3740b2a3b4">&#9670;&nbsp;</a></span>badDimensionAutomorphCorrection()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::badDimensionAutomorphCorrection </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>amt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Correct an automorphism in a bad dimension. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctxt</td><td><code><a class="el" href="classhelib_1_1_ctxt.html" title="A Ctxt object holds a single ciphertext.">Ctxt</a></code> to perform the correction on. </td></tr>
    <tr><td class="paramname">i</td><td>Dimension of which to correct. </td></tr>
    <tr><td class="paramname">amt</td><td>Exponent of the automorphism. </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a05e74964d2a8246b2c197251d6426faa">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a60e1f36fa2c3453822f72a6989149714"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a60e1f36fa2c3453822f72a6989149714">&#9670;&nbsp;</a></span>buildLinPolyCoeffs() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::buildLinPolyCoeffs </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>C</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &amp;&#160;</td>
          <td class="paramname"><em>oneImage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &amp;&#160;</td>
          <td class="paramname"><em>iImage</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>First variant: same linear transformation in all the slots. </p>

</div>
</div>
<a id="ad08e366e8626643c48cb51f3936717de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad08e366e8626643c48cb51f3936717de">&#9670;&nbsp;</a></span>buildLinPolyCoeffs() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::buildLinPolyCoeffs </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>C</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>oneImages</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>iImages</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Second variant: different linear transformation in each slots. </p>

</div>
</div>
<a id="a8b7e8a98d581d65ed294d0d9e6d8b6c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b7e8a98d581d65ed294d0d9e6d8b6c6">&#9670;&nbsp;</a></span>buildLinPolyCoeffs() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::buildLinPolyCoeffs </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;&#160;</td>
          <td class="paramname"><em>C</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; NTL::ZZX &gt; &amp;&#160;</td>
          <td class="paramname"><em>L</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented buildLinPolyCoeffs function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">C</td><td>Unused. </td></tr>
    <tr><td class="paramname">L</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a407bacde3fcafde4071f6e6e37bc2771"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a407bacde3fcafde4071f6e6e37bc2771">&#9670;&nbsp;</a></span>clone()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classhelib_1_1_encrypted_array_base.html">EncryptedArrayBase</a>* helib::EncryptedArrayCx::clone </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#aff3d839e2e2976ef8c87853cf5a9cbb7">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a4dad92fbceda699b62904e4418ae122c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4dad92fbceda699b62904e4418ae122c">&#9670;&nbsp;</a></span>convert() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void helib::EncryptedArrayCx::convert </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>in</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aa4cd5c3c53cd6bd535e37ba2c4db4bd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4cd5c3c53cd6bd535e37ba2c4db4bd7">&#9670;&nbsp;</a></span>convert() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void helib::EncryptedArrayCx::convert </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>in</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a421628840dc807f1f0c2265c763176ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a421628840dc807f1f0c2265c763176ed">&#9670;&nbsp;</a></span>convert() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void helib::EncryptedArrayCx::convert </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>in</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a13112446e3d1596d974b51c3d1da8ba7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a13112446e3d1596d974b51c3d1da8ba7">&#9670;&nbsp;</a></span>convert() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void helib::EncryptedArrayCx::convert </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>in</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="aee03f28f6d616e8109966f711c299f47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee03f28f6d616e8109966f711c299f47">&#9670;&nbsp;</a></span>decode() <span class="overload">[1/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scaling</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a04a4eb3181a52e70fffe155769c6507c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a04a4eb3181a52e70fffe155769c6507c">&#9670;&nbsp;</a></span>decode() <span class="overload">[2/7]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scaling</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ac0897608adff0c1e2e558968cbe96a3d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0897608adff0c1e2e558968cbe96a3d">&#9670;&nbsp;</a></span>decode() <span class="overload">[3/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scaling</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af6adfaf69bf5ce786122da95a4c2bf9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6adfaf69bf5ce786122da95a4c2bf9e">&#9670;&nbsp;</a></span>decode() <span class="overload">[4/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>scaling</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="adafe0d6e2cc46d72ed92629568260913"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adafe0d6e2cc46d72ed92629568260913">&#9670;&nbsp;</a></span>decode() <span class="overload">[5/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented decode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae26a1447dca1803da3a54b394f8ff7f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae26a1447dca1803da3a54b394f8ff7f3">&#9670;&nbsp;</a></span>decode() <span class="overload">[6/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented decode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a37f5f723bf309bf9727d301ba0c9e915"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37f5f723bf309bf9727d301ba0c9e915">&#9670;&nbsp;</a></span>decode() <span class="overload">[7/7]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented decode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afa9e2e8c44f575c2f47c6151c71cf8c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa9e2e8c44f575c2f47c6151c71cf8c5">&#9670;&nbsp;</a></span>decrypt() <span class="overload">[1/6]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scheme &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decrypt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;&#160;</td>
          <td class="paramname"><em>sKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Decrypt ciphertext to a plaintext relative to a specific scheme. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Scheme</td><td>Encryption scheme to be used (either <code><a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a></code> or <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code>). </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctxt</td><td>Ciphertext to decrypt. </td></tr>
    <tr><td class="paramname">sKey</td><td>Secret key to be used for decryption. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Plaintext into which to decrypt. Decrypt a <code><a class="el" href="classhelib_1_1_ctxt.html" title="A Ctxt object holds a single ciphertext.">Ctxt</a></code> ciphertext object to a <code><a class="el" href="classhelib_1_1_ptxt.html" title="An object that mimics the functionality of the Ctxt object, and acts as a convenient entry point for ...">Ptxt</a></code> plaintext one relative to a specific scheme. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa502f697863f7b9354a25997043507bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa502f697863f7b9354a25997043507bf">&#9670;&nbsp;</a></span>decrypt() <span class="overload">[2/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decrypt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;&#160;</td>
          <td class="paramname"><em>sKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a000a070007229db34150a3dcbb45f886">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a5bea11d6a177b18c3085e37fa5af5c20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5bea11d6a177b18c3085e37fa5af5c20">&#9670;&nbsp;</a></span>decrypt() <span class="overload">[3/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decrypt </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;&#160;</td>
          <td class="paramname"><em>sKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a4883d910df8cf214986647f84eb7531c">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a7b2d7b9513ab362cc501444c80caf1b9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b2d7b9513ab362cc501444c80caf1b9">&#9670;&nbsp;</a></span>decrypt() <span class="overload">[4/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decrypt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;&#160;</td>
          <td class="paramname"><em>sKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented decrypt function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">sKey</td><td>Unused. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad3a288634f433757cb36f2cd76db1382"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3a288634f433757cb36f2cd76db1382">&#9670;&nbsp;</a></span>decrypt() <span class="overload">[5/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decrypt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;&#160;</td>
          <td class="paramname"><em>sKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented decrypt function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">sKey</td><td>Unused. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7c7e7d86e4cc50878cd108efc4e97c46"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7c7e7d86e4cc50878cd108efc4e97c46">&#9670;&nbsp;</a></span>decrypt() <span class="overload">[6/6]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::decrypt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_sec_key.html">SecKey</a> &amp;&#160;</td>
          <td class="paramname"><em>sKey</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented decrypt function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ctxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">sKey</td><td>Unused. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a194b09c3ca3c9880f587f598cdaab92c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a194b09c3ca3c9880f587f598cdaab92c">&#9670;&nbsp;</a></span>encode() <span class="overload">[1/12]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PTXT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype">NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PTXT &amp;&#160;</td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab921e7d1e4408b40e64880ed71c079df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab921e7d1e4408b40e64880ed71c079df">&#9670;&nbsp;</a></span>encode() <span class="overload">[2/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a6c3a912cab33e23d959d45826a398578"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c3a912cab33e23d959d45826a398578">&#9670;&nbsp;</a></span>encode() <span class="overload">[3/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4e916710a3d770b1a5e258c27ba2ef86"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e916710a3d770b1a5e258c27ba2ef86">&#9670;&nbsp;</a></span>encode() <span class="overload">[4/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> NTL::ZZX &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; NTL::ZZX &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aca004382bb4e4226ba45634f4302d8c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca004382bb4e4226ba45634f4302d8c0">&#9670;&nbsp;</a></span>encode() <span class="overload">[5/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const <a class="el" href="classhelib_1_1_plaintext_array.html">PlaintextArray</a> &amp;&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a1a8bd7eeef62309e6c872a45e9d50b6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a8bd7eeef62309e6c872a45e9d50b6e">&#9670;&nbsp;</a></span>encode() <span class="overload">[6/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ae5ce92c28f92efd122a6f93fed3c42a7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5ce92c28f92efd122a6f93fed3c42a7">&#9670;&nbsp;</a></span>encode() <span class="overload">[7/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> const std::vector&lt; <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented encode function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptxt</td><td>Unused. </td></tr>
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a4c41f5c4c4efad7ab4f395c476ad86a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c41f5c4c4efad7ab4f395c476ad86a3">&#9670;&nbsp;</a></span>encode() <span class="overload">[8/12]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scheme &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Encode a <code><a class="el" href="classhelib_1_1_ptxt.html" title="An object that mimics the functionality of the Ctxt object, and acts as a convenient entry point for ...">Ptxt</a></code> object into a <code>zzX</code>. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Scheme</td><td>Encryption scheme to be used (either <code><a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a></code> or <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code>). </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">out</td><td>Polynomial to encode into. </td></tr>
    <tr><td class="paramname">ptxt</td><td>Plaintext <code><a class="el" href="classhelib_1_1_ptxt.html" title="An object that mimics the functionality of the Ctxt object, and acts as a convenient entry point for ...">Ptxt</a></code> object to encode. </td></tr>
    <tr><td class="paramname">useThisSize</td><td>Size to use. </td></tr>
    <tr><td class="paramname">precision</td><td>Precision to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The scaling factor used in the encoding routine. </dd></dl>

</div>
</div>
<a id="ae0bc1cf1942cb25cbfd2c831aba3a8ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0bc1cf1942cb25cbfd2c831aba3a8ca">&#9670;&nbsp;</a></span>encode() <span class="overload">[9/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a1192b25b1874ce96ccba61901f25b1d2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1192b25b1874ce96ccba61901f25b1d2">&#9670;&nbsp;</a></span>encode() <span class="overload">[10/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a8367c993fd304e5633ec0af3942d9dde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8367c993fd304e5633ec0af3942d9dde">&#9670;&nbsp;</a></span>encode() <span class="overload">[11/12]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a32dc1b7e2f744d33d1f4a768cb95e888"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a32dc1b7e2f744d33d1f4a768cb95e888">&#9670;&nbsp;</a></span>encode() <span class="overload">[12/12]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encode </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>aSingleNumber</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a8816c7ea0d50a3667a7c9a4aaab903d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8816c7ea0d50a3667a7c9a4aaab903d5">&#9670;&nbsp;</a></span>encodei()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encodei </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a614df6336a69dd08830bebfcfb34a5a8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a614df6336a69dd08830bebfcfb34a5a8">&#9670;&nbsp;</a></span>encodeRoundingError()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double helib::EncryptedArrayCx::encodeRoundingError </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="ab484dcb060abf64753a886c7bf734cd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab484dcb060abf64753a886c7bf734cd3">&#9670;&nbsp;</a></span>encodeScalingFactor()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long helib::EncryptedArrayCx::encodeScalingFactor </td>
          <td>(</td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>roundErr</em> = <code>-1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a0fee8bb20e092b4728f2ed11c78bacc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fee8bb20e092b4728f2ed11c78bacc8">&#9670;&nbsp;</a></span>encodeUnitSelector()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encodeUnitSelector </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Encodes a std::vector with 1 at position i and 0 everywhere else. </p>

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#ae87dba346c9f27331e552edd1511552f">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a79a4eb688187ecd60d37dd7c0b9e43a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79a4eb688187ecd60d37dd7c0b9e43a5">&#9670;&nbsp;</a></span>encrypt() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PTXT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encrypt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PTXT &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a3ace019165a5f26bc7fa0a2528324a15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ace019165a5f26bc7fa0a2528324a15">&#9670;&nbsp;</a></span>encrypt() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PTXT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encrypt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const PTXT &amp;&#160;</td>
          <td class="paramname"><em>ptxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a9d95edb864185a146f2536a94b9eff80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d95edb864185a146f2536a94b9eff80">&#9670;&nbsp;</a></span>encryptOneNum()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::encryptOneNum </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classhelib_1_1_pub_key.html">PubKey</a> &amp;&#160;</td>
          <td class="paramname"><em>key</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>num</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>useThisSize</em> = <code>-1</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>precision</em> = <code>-1</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="af4d57a1e0b74b21438445fbd6ba2b03d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af4d57a1e0b74b21438445fbd6ba2b03d">&#9670;&nbsp;</a></span>extractImPart() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::extractImPart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_double_c_r_t.html">DoubleCRT</a> *&#160;</td>
          <td class="paramname"><em>dcrt</em> = <code>nullptr</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Note: If called with dcrt==nullptr, extractImPart will perform FFT's when encoding i as a <a class="el" href="classhelib_1_1_double_c_r_t.html" title="Implementing polynomials (elements in the ring R_Q) in double-CRT form.">DoubleCRT</a> object. If called with dcrt!=nullptr, it assumes that dcrt points to an object that encodes i. </p>

</div>
</div>
<a id="aeae260ec0a6f65f82abdfd25a875e0a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aeae260ec0a6f65f82abdfd25a875e0a3">&#9670;&nbsp;</a></span>extractImPart() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scheme &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::extractImPart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extract the imaginary part of a <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code> plaintext. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Scheme</td><td>Encryption scheme to be used (must be <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code>). </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Plaintext on which to operate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a5c2c2a01e6ea6c972904c1e98738fbd1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c2c2a01e6ea6c972904c1e98738fbd1">&#9670;&nbsp;</a></span>extractRealPart() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::extractRealPart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>c</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a333b490a6f284b78172e0e62092ea603"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a333b490a6f284b78172e0e62092ea603">&#9670;&nbsp;</a></span>extractRealPart() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scheme &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::extractRealPart </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ptxt.html">Ptxt</a>&lt; Scheme &gt; &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Extract the real part of a <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code> plaintext. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Scheme</td><td>Encryption scheme to be used (must be <code><a class="el" href="structhelib_1_1_c_k_k_s.html" title="Type for CKKS scheme, to be used as template parameter.">CKKS</a></code>). </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">p</td><td>Plaintext on which to operate. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="aa31b4620c1888b0daf353c4947203b2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa31b4620c1888b0daf353c4947203b2c">&#9670;&nbsp;</a></span>getContext()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classhelib_1_1_context.html">Context</a>&amp; helib::EncryptedArrayCx::getContext </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a953777c1f618b3f77cb06981f39dce99">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="adb3be49bb5b91e3f7cca75c89877687f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adb3be49bb5b91e3f7cca75c89877687f">&#9670;&nbsp;</a></span>getDegree()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long helib::EncryptedArrayCx::getDegree </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a385a1b684e2ff6346f7b8e7425a6aacb">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a9d770aef7c5a653d705f29a359187578"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d770aef7c5a653d705f29a359187578">&#9670;&nbsp;</a></span>getiEncoded()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="namespacehelib.html#a4d6002f36f1a61982fded09adf1331ca">zzX</a> &amp; helib::EncryptedArrayCx::getiEncoded </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a3df75f4c6f7d6962041e01f608fd168d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3df75f4c6f7d6962041e01f608fd168d">&#9670;&nbsp;</a></span>getP2R()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">long helib::EncryptedArrayCx::getP2R </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a4b575e110984970e2f56f6b04731f55a">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a9e77914e54d3c5cf96370fafd1792d51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9e77914e54d3c5cf96370fafd1792d51">&#9670;&nbsp;</a></span>getPAlgebra()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classhelib_1_1_p_algebra.html">PAlgebra</a>&amp; helib::EncryptedArrayCx::getPAlgebra </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#aebe917f60f1fa14b3f43d283e39c05f0">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a42dae93ce85090806f840ad3bc5ef069"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a42dae93ce85090806f840ad3bc5ef069">&#9670;&nbsp;</a></span>getTag()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespacehelib.html#ab0181d82dc81ed4d1f8c1d950b4efd7e">PA_tag</a> helib::EncryptedArrayCx::getTag </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a5fe975d2c45ef2f25aaf5920c91627fe">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a75e42ce2babf93cdc429d474111cf889"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a75e42ce2babf93cdc429d474111cf889">&#9670;&nbsp;</a></span>random() <span class="overload">[1/4]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::random </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="namespacehelib.html#a719cb433e43e9f4a88ada8b72d3b715d">cx_double</a> &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rad</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="a2bb0704f701023769bb7cc985fd18e73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2bb0704f701023769bb7cc985fd18e73">&#9670;&nbsp;</a></span>random() <span class="overload">[2/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::random </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; double &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rad</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a852eac6fa3232bbc05e850759334580a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a852eac6fa3232bbc05e850759334580a">&#9670;&nbsp;</a></span>random() <span class="overload">[3/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::random </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; long &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#aee2981f3b0804e96f83106307d9c5be9">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a909891b441d50f99b13e5719ea7b1ce7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a909891b441d50f99b13e5719ea7b1ce7">&#9670;&nbsp;</a></span>random() <span class="overload">[4/4]</span></h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::random </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="api_attributes_8h.html#addf5ec070e9499d36b7f2009ce736076">UNUSED</a> std::vector&lt; NTL::ZZX &gt; &amp;&#160;</td>
          <td class="paramname"><em>array</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">override</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Unimplemented random function for <a class="el" href="structhelib_1_1_b_g_v.html" title="Type for BGV scheme, to be used as template parameter.">BGV</a>. It will always throw <a class="el" href="classhelib_1_1_logic_error.html" title="Inherits from Exception and std::logic_error.">helib::LogicError</a>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">array</td><td>Unused. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a7d8d25cd71e1ca0bd7a287b18965d7c4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d8d25cd71e1ca0bd7a287b18965d7c4">&#9670;&nbsp;</a></span>rotate()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::rotate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Right rotation as a linear array. E.g., rotating ctxt=Enc(1 2 3 ... n) by k=1 gives Enc(n 1 2 ... n-1) </p>

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#ab02ad165d8df163bc6d8c544f8f81bbd">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a6f262de0581bb42862bfd5edbdc1b79d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f262de0581bb42862bfd5edbdc1b79d">&#9670;&nbsp;</a></span>rotate1D()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::rotate1D </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>k</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>dc</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>right-rotate k positions along the i'th dimension </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dc</td><td>means "don't care", which means that the caller guarantees that only zero elements rotate off the end &ndash; this allows for some optimizations that would not otherwise be possible </td></tr>
  </table>
  </dd>
</dl>

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a3beed1bc134ad9a4dbe6f6c4f456fee7">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a84a23e382804d2ed776dd7eebe65c41e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84a23e382804d2ed776dd7eebe65c41e">&#9670;&nbsp;</a></span>roundedSize()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static double helib::EncryptedArrayCx::roundedSize </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>x</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
<a id="a5e06f07495e1753090a36084f0567c24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e06f07495e1753090a36084f0567c24">&#9670;&nbsp;</a></span>shift()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::shift </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Non-cyclic right shift with zero fill E.g., shifting ctxt=Enc(1 2 3 ... n) by k=1 gives Enc(0 1 2... n-1) </p>

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a72245213a18b9bafdd8ebc2396972c14">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<a id="a8c9c54b75a6f13a32c5c71157477d6a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8c9c54b75a6f13a32c5c71157477d6a4">&#9670;&nbsp;</a></span>shift1D()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void helib::EncryptedArrayCx::shift1D </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classhelib_1_1_ctxt.html">Ctxt</a> &amp;&#160;</td>
          <td class="paramname"><em>ctxt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>i</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>k</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Right shift k positions along the i'th dimension with zero fill. </p>

<p>Implements <a class="el" href="classhelib_1_1_encrypted_array_base.html#a2461039fb77ebf3fea8482adff2b40c0">helib::EncryptedArrayBase</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>/HElib/include/helib/<a class="el" href="_encrypted_array_8h_source.html">EncryptedArray.h</a></li>
<li>/HElib/src/<a class="el" href="_ea_cx_8cpp.html">EaCx.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.18
</small></address>
</body>
        <script type="text/javascript" src="doxy-boot.js"></script>
</html>
